package com.house.service;

import com.house.dto.UserDTO;
import com.house.entity.User;
import com.house.vo.UserVO;
import org.springframework.data.domain.Page;

import java.util.List;
import java.util.Map;
import java.util.Optional;

/**
 * @version 1.0
 * @Author OhygC
 * @since 1.0
 */
public interface UserSerivce {
    /**
     * 修改用户接口
     */
    int updateUser(User user);

    /**
     * 注册接口
     */
    User register(UserDTO userDTO);


    /**
     * 根据电话查询用户
     */
    User selectUserByPhone(String phone);

    /**
     * 登录接口
     */
    User login(UserDTO userDTO);


    /**
     * 查找用户总数
     */
    int findUsersTotal(String string);

    /**
     * 查询所有用户
     */
    Page<Map<String, Object>> findUsers(Map<String, Object> params);


    /**
     * 根据id查询该用户
     */
    User findUserById(Integer id);

    /**
     * 根据id修改状态码
     */
    int updateState(Integer id);

    /**
     * 根据id修改状态码
     */
    int updateState1(Map<String, Integer> params);

    /**
     * 根据状态码查询用户
     */
    Page<Map<String, Object>> findUsersByState(Map<String, Object> params);

    /**
     * 根据名字模糊和查询进行分页
     */
    Page<User> findUsersByName(UserDTO userDTO);

    Optional<User> findOneUserById(Integer id);
}
